An electronic system generally requires a level of memory performance suited to the functions it performs. For example, a system may require relatively fast memory performance to manage data from a real-time data stream, or it may tolerate slower memory performance to store data long term data.
An example of a system that may require fast memory performance is a real-time spectrum analyzer (RTSA). A typical RTSA receives an input signal and converts it into a frequency spectrum at a relatively high rate, e.g., 300×103 spectra per second. These spectra are stored as histogram data representing the number of times each frequency of interest appears at a particular amplitude during a designated time interval. The stored histogram data is then presented on a display at a regular interval (e.g., 30 frames per second), allowing a user to observe the frequency content of the input signal in real-time.
To update the stored histogram data, the RTSA must read the data from the memory, modify the data according to a current spectrum provided in the input signal, and then rewrite the data in the memory. Such an operation is referred to as a read-modify-write operation. At a rate of 300×103 spectra per second, if each spectrum comprises 1024 samples, the RTSA may be required to perform approximately 300×106 read-modify-write operations per second. Accordingly, the memory used to store the histogram data—referred to as a histogram memory—must be relatively fast. In addition, to support a large range for each histogram entry, the histogram memory must have a relatively high capacity in order to avoid data overflow.
A standard approach to implementing a fast large histogram memory is to use a field programmable gate array (FPGA) BlockRAM. A typical FPGA BlockRAM can support read-modify-write operations at a rate required by an RTSA operating with a bandwidth of 255 MHz. Unfortunately, however, an FPGA with sufficient BlockRAM and speed for an RTSA is very expensive and would not normally be considered for use as part of a non-real-time spectrum analyzer. Consequently, most RTSA products are implemented as separate, more expensive instruments from non-real-time spectrum analyzers.
In view of the above and other shortcomings of conventional systems, there is a general need for techniques and technologies that can provide fast memory performance without requiring large amounts of expensive memory.